package collention;

import java.util.*;

/**
 * @Classname: List
 * @Author: bromide
 * @CreateTime: 2022/4/6--14:02
 * @Version: V1.0
 * @Description: List集合
 * List接口继承自Collection，是可以存放重复元素且有序的集合。
 * 常用实现类：
 * java.util.ArrayList:内部使用数组实现，查询性能更好。
 * java.util.LinkedList:内部使用链表实现，增删性能更好，首位增删性能最佳
 * 在对比性能没有特别苛刻的情况下通常使用ArrayList即可
 */
public class ListDemo1 {
    public static void main(String[] args) {
        //List<String> list = new ArrayList<>();
        List<String> list = new LinkedList<>();
        list.add("one");
        list.add("two");
        list.add("three");
        list.add("four");
        list.add("five");
        System.out.println(list);

        /*
            E get(int index)
            获取指定下标出对应的元素
         */
        String str = list.get(2);//获取集合中第三个元素
        System.out.println(str);

        for (int i = 0; i < list.size(); i++) {
            str = list.get(i);// 与数组中的  String str = arr[i];  类似
            System.out.println(str);
        }

        /*
            E set(int index,E e)
         */
        System.out.println(list);
        String old = list.set(1, "six");
        System.out.println(list);
        System.out.println(old);


        //将集合list反转
//        Collections.reverse(list);

        for (int i = 0; i < (list.size()) / 2; i++) {
            int j = list.size() - 1 - i;
            /*String s = list.get(i);
            String s1 = list.set(j,s);
            list.set(i,s1);*/

            list.set(j, list.set(i, list.get(j)));
        }
        System.out.println(list);
        StringBuilder sb = new StringBuilder("abcd");
        StringBuilder sb1 = sb.reverse();
        /*char c1 = sb.charAt(1);
        char c2 = sb.charAt(2);
        sb.setCharAt(1,c2);
        sb.setCharAt(2,c1);*/  //"acbd"
        System.out.println(sb1 == sb);


    }
}
